package cn.genmer.test.security.designpatterns.decorator;

/**
 * 抽象的装饰类
 */
public class  Decorator extends Drink{
    private Drink obj;
    public Decorator(Drink obj){
        this.obj = obj;
    }


    @Override
    public float cost() {
        // 由于递归获取，获取本身商品的价格 + 前一个商品（奶茶或者配料）的价格
        return getPrice() + obj.cost();
    }

    @Override
    public String getName() {
        // 通过借助父类的成员变量存储递归获取的信息
        return String.format("%s %s && %s",super.getName(),super.getPrice(),obj.getName());
    }
}
